﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace eventr.View.Util
{
    /// <summary>
    /// Tool to provide a generic data event args which can be used for many differnt event scenarios
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public class DataEventArgs<T> : EventArgs
    {
        T data;

        public DataEventArgs(T data)
        {
            this.data = data;
        }

        public T Data
        {
            get
            {
                return data;
            }
        }
    }
    public class DataEventArgs<T, U> : EventArgs
    {
        T data;
        U data2;

        public DataEventArgs(T data, U data2)
        {
            this.data = data;
            this.data2 = data2;
        }

        public T Data
        {
            get
            {
                return data;
            }
        }

        public U Data2
        {
            get
            {
                return data2;
            }
        }
    }

    public class DataEventArgs<T, U, V> : EventArgs
    {
        T data;
        U data2;
        V data3;

        public DataEventArgs(T data, U data2, V data3)
        {
            this.data = data;
            this.data2 = data2;
            this.data3 = data3;
        }

        public T Data
        {
            get
            {
                return data;
            }
        }

        public U Data2
        {
            get
            {
                return data2;
            }
        }

        public V Data3
        {
            get
            {
                return data3;
            }
        }
    }
}
